﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;

namespace Project
{
    public partial class Payment : Form
    {
        public Payment()
        {
            InitializeComponent();
        }

        private void bPay_Click(object sender, EventArgs e)
        {
            // Получаем номер договора
            int DealNum = -1;
            int.TryParse(tbDealNum.Text, out DealNum);
            if (DealNum == -1 || DealNum == 0)
            {
                LabelError.Text = "Неправильно задан номер договора!";
                return;
            }

            // Получаем дату оплаты
            DateTime dtValue = DateTime.MinValue;
            dtValue = DateTime.Today;
            //DateTime.TryParse(tbPaymentDate.Text, out dtValue);
            //if (dtValue == DateTime.MinValue)
            //{
            //    LabelError.Text = "Неправильно задана дата!";
            //    return;
            //}
            //if (dtValue >= DateTime.Today.AddDays(1))
            //{
            //    LabelError.Text =  "Оплаты вперед не могут быть внесены, они не отразятся в системе!";
            //    return;
            //}

            // Получаем сумму
            decimal dSum = -1;
            decimal.TryParse(tbAmount.Text, out dSum);
            //if (dSum == -1 || dSum == 0)
            //{
            //   LabelError.Text = "Неправильно задана сумма для оплаты";
            //    return;
            //}
            //string fio = tbSurname.Text + " " + tbName.Text + " " + tbPatroname.Text;
            /*записываем данные по оплате в xml файл*/
            string sFileName = @"C:\Users\Ольга\Desktop\ExampleXML.xml";

            //Создаем пустой XML - документ:
            XmlDocument doc = new XmlDocument();
            try
            {
                doc.Load(sFileName);
                //а это - корень дерева
                XmlNode root = doc.LastChild;
                root.AppendChild(createnode(doc,DealNum,dtValue,dSum));

                //сохранение
                System.IO.FileStream fs = new System.IO.FileStream(sFileName, System.IO.FileMode.OpenOrCreate);
                doc.Save(fs);
                fs.Flush();
                fs.Close();
            }
            catch
            {
                //Документ - это дерево, переменная oNode будет использоваться 
                //для представления "ветки" при добавлении "ветвей" к дереву
               

                //а это - корень дерева
                XmlNode root;
                root = doc.CreateNode(XmlNodeType.Element, "root", "");
                //мы создали элемент... а теперь мы его добавим к дереву.
                doc.AppendChild(root);

                //oNode.InnerText = ;// + "; " + fio + "; " + dSum.ToString() + "; " + dtValue.ToShortDateString();
                root.AppendChild(createnode(doc,DealNum,dtValue,dSum));
                //сохранение
                System.IO.FileStream fs = new System.IO.FileStream(sFileName, System.IO.FileMode.OpenOrCreate);
                doc.Save(fs);
                fs.Flush();
                fs.Close();
            }

            this.Close();

        }
        public XmlAttribute createatribute(XmlDocument doc,string name, string value)
        {
            XmlAttribute newnode = doc.CreateAttribute("n", name, "");
            newnode.Value = value;
            return newnode;
        }

        public XmlNode createnode(XmlDocument doc,int DealNum, DateTime dtValue, decimal dSum)
        {
            XmlNode oNode = null;
            oNode = doc.CreateNode(XmlNodeType.Element, "Payment", "");
            XmlNode chil = doc.CreateNode(XmlNodeType.Element, "Pay", "");
            oNode.AppendChild(chil);
            chil.Attributes.Append(createatribute(doc, "Number", DealNum.ToString()));
            chil.Attributes.Append(createatribute(doc, "Surname", tbSurname.Text));
            chil.Attributes.Append(createatribute(doc, "Name", tbName.Text));
            chil.Attributes.Append(createatribute(doc, "Patroname", tbPatroname.Text));
            chil.Attributes.Append(createatribute(doc, "Passport", tbPassportNum.Text.Replace(" ", string.Empty)));
            chil.Attributes.Append(createatribute(doc, "PaymentDate", dtValue.ToShortDateString()));
            chil.Attributes.Append(createatribute(doc, "Amount", dSum.ToString()));
            return oNode;

        }

    }
}
